Select na datumy v rozmezi

Otázka od: Ing. Petr Sikola

29. 7. 2004 6:51

Zdravim konferenci, pokousim se napsat sql ktere by vybralo podle nejake
podmminky zaznamy a k tomu jeste zaznamy, u kterych je datum v toleranci
do 5 sec od nektereho z predtim vybranych (kazdeho samostatne). Bohuzel
se s tim stale potykam  

Select je takovyto:

select DATUM,SLA,SLB,SLC from DATA where SLA='abcde' and SLB='xx' and
DATUM > '20040701 0:00:00' and SLC = 67

A ted bych k tomu potreboval prodat zaznamy, ktere se v datumu lisi
treba o 10 sec
Neco jako

select DATUM,SLA,SLB,SLC from DATA where SLB='xx' and DATUM >
'20040701
0:00:00' and SLC = 67 /*podminka na SLA schvalne vypustena*/
and ABS(datediff(second,DATUM,?DATUM_z_predchoziho_selectu?))<10

Ale nevim jak to k sobe napojit

Je to na MSSQL

Diky za nakopnuti
Petr Sikola


Odpovedá: Martin Cajbik

29. 7. 2004 6:41

Zdravim,
prve co ma napadlo bolo nieco take:

select DATUM,SLA,SLB,SLC
  from DATA A
  where (SLA='abcde' and SLB='xx' and
    DATUM > '20040701 0:00:00' and SLC = 67) OR
    EXISTS(select * from DATA B
      where (B.SLA='abcde' and B.SLB='xx' and B.SLC = 67 and
      B.DATUM BETWEEN DATEADD(second, -5, A.Datum) AND DATEADD(second, 5,
A.Datum))

Martin Cajbik


Ing. Petr Sikola wrote:

>Zdravim konferenci, pokousim se napsat sql ktere by vybralo podle nejake
>podmminky zaznamy a k tomu jeste zaznamy, u kterych je datum v toleranci
>do 5 sec od nektereho z predtim vybranych (kazdeho samostatne). Bohuzel
>se s tim stale potykam  
>
>Select je takovyto:
>
>select DATUM,SLA,SLB,SLC from DATA where SLA='abcde' and SLB='xx' and
>DATUM > '20040701 0:00:00' and SLC = 67
>
>A ted bych k tomu potreboval prodat zaznamy, ktere se v datumu lisi
>treba o 10 sec
>Neco jako
>
>select DATUM,SLA,SLB,SLC from DATA where SLB='xx' and DATUM >
'20040701
>0:00:00' and SLC = 67 /*podminka na SLA schvalne vypustena*/
>and ABS(datediff(second,DATUM,?DATUM_z_predchoziho_selectu?))<10
>
>Ale nevim jak to k sobe napojit
>
>Je to na MSSQL
>